#导入其它类
from Manager import AIManager
from AssistantTypes import (
    TextAssistant, ImageAssistant, DataAnalysisAssistant,
    TranslationAssistant, VoiceAssistant
)

#主函数
def main():
    #创建AIManager对象
    manager = AIManager()

    #初始化AI助手信息
    manager.add_assistant(VoiceAssistant("1", "小高", "1.1", True, 100), silent=True)
    manager.add_assistant(TextAssistant("2", "大高", "2.1", True, 1), silent=True)
    manager.add_assistant(ImageAssistant("3", "中高", "3.1", False, 66), silent=True)
    manager.add_assistant(DataAnalysisAssistant("4", "微高", "4.1", True, 99), silent=True)
    manager.add_assistant(TranslationAssistant("5", "太高", "5.1", False, 59), silent=True)

    #while循环 实现重复使用
    while True:
        #输出菜单页面
        print("""==========AI助手管理器 ==========
1. 查看所有AI助手列表
2. 根据ID查询助手详情
3. 添加新的AI助手
4. 根据ID修改助手信息
5. 删除AI助手（按ID）
6. 启动AI助手服务
7. 停止AI助手服务
8. 为AI助手分配任务
9. 显示系统统计信息
0. 退出系统
===================================""")
        #接受用户选择输入
        choice = input("请选择操作: ")

        #if-elif 判断用户输入 调用方法

        if choice == "1":
            #查看所有AI助手列表
            manager.list_assistants()

        elif choice == "2":
            #根据ID查询助手详情
            #input 传参
            manager.show_details(input("请输入要查询的AI助手ID: "))

        elif choice == "3":
            #添加新的AI助手

            #接收新AI助手的信息
            id = input("请输入ID: ")
            name = input("请输入名称: ")
            #用户输入提示
            print("AI助手类型：1-文本助手 2-图像助手 3-数据分析助手 4-翻译助手 5-语音助手")
            t = input("请选择类型编号: ")
            version = input("请输入版本号: ")
            online = input("是否在线？(1-是, 0-否): ") == "1"
            score = float(input("请输入能力评分(0-100): "))

            #if-elif 判断AI助手类型 调用不同的构造方法
            if t == "1":
                assistant = TextAssistant(id, name, version, online, score)
            elif t == "2":
                assistant = ImageAssistant(id, name, version, online, score)
            elif t == "3":
                assistant = DataAnalysisAssistant(id, name, version, online, score)
            elif t == "4":
                assistant = TranslationAssistant(id, name, version, online, score)
            elif t == "5":
                assistant = VoiceAssistant(id, name, version, online, score)
           #错误输入处理
            else:
                print("类型选择无效。")
                #continue跳出本次循环
                continue

            manager.add_assistant(assistant)

        elif choice == "4":
            #根据ID修改助手信息

            #接收用户输入ID
            id = input("请输入ID: ")
            #用户输入提示
            print("可修改属性: name,type,version,online,score")

            #从用户输入中获取两个值，并将它们分别赋值给两个变量
            attr, value = input("请输入要修改的属性和值，用空格分割: ").split()

            manager.modify_assistant(id, attr, value)

        elif choice == "5":
            #删除AI助手（按ID）
            manager.delete_assistant(input("请输入要删除的AI助手ID: "))

        elif choice == "6":
            #启动AI助手服务
            manager.start_service(input("请输入要启动的AI助手ID: "))

        elif choice == "7":
            #停止AI助手服务
            manager.stop_service(input("请输入要停止的AI助手ID: "))

        elif choice == "8":
            #为AI助手分配任务
            id = input("请输入目标AI助手ID: ")
            task = input("请输入任务内容: ")
            manager.assign_task(id, task)

        elif choice == "9":
            #显示系统统计信息
            manager.show_statistics()

        elif choice == "0":
        #退出系统
            print("欢迎下次使用！")
            #结束循环
            break

        #错误输入处理
        else:
            print("无效选项，请重新输入！！！")

#入口点检查
#用于确定当前脚本是作为主程序运行还是被导入为模块
if __name__ == "__main__":
    main()
